#ifndef P_ENTITY_H
#define P_ENTITY_H

#include "pForward.h"
#include <string>
#include "template.h"

namespace Tmpl8
{

class pEntity
{
	friend Physics;
public:
								pEntity(){  }
								pEntity(unsigned int aIndex) : mIndex(aIndex){ };
								~pEntity(){};

	//Misc
	virtual ENTITY_TYPE			GetType(){return ENTITY_ERROR;}
	virtual float				GetAngle() =0;

	virtual vector3				GetPosition() =0;

	virtual void				SetName(std::string aName) { mName = aName; }
	virtual std::string			GetName() { return mName; }

	//Physics:

protected:
	unsigned int				GetIndex() { return mIndex; }
	void						SetIndex(unsigned int aIndex){mIndex = aIndex;}

	virtual void				Draw() {}
	virtual void				Tick() = 0;

	static Physics*				mPhysics;
	unsigned int				mIndex;

	std::string					mName;

};




};

#endif